home *** CD-ROM | disk | FTP | other *** search
/ The Complete Utilities To…ka 501 Killer Utilities! / 501 Killer Utilities! (Macworld July 1995).cdr / Programming / OutOfPhase1.1 Source / OutOfPhase Folder / DelayEffectSpec.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-01-08  |  4.7 KB  |  115 lines  |  [TEXT/KAHL]

  1. /* DelayEffectSpec.h */
  2.  
  3. #ifndef Included_DelayEffectSpec_h
  4. #define Included_DelayEffectSpec_h
  5.  
  6. /* DelayEffectSpec module depends on */
  7. /* MiscInfo.h */
  8. /* Audit */
  9. /* Debug */
  10. /* Definitions */
  11. /* Memory */
  12. /* Array */
  13. /* LFOListSpecifier */
  14. /* Envelope */
  15.  
  16. struct DelayEffectRec;
  17. typedef struct DelayEffectRec DelayEffectRec;
  18.  
  19. struct DelayTapRec;
  20. typedef struct DelayTapRec DelayTapRec;
  21.  
  22. /* delay tap sources */
  23. typedef enum
  24.     {
  25.         eTapLeftChannel EXECUTE(= 5121),
  26.         eTapRightChannel,
  27.         eTapMonoChannel
  28.     } DelayChannelType;
  29.  
  30. /* filter types */
  31. typedef enum
  32.     {
  33.         eTapNoFilter EXECUTE(= 8175),
  34.         eTapMovingAverageLP
  35.     } DelayFilterType;
  36.  
  37. /* forwards */
  38. struct EnvelopeRec;
  39. struct LFOListSpecRec;
  40.  
  41. /* create a new delay line specification */
  42. DelayEffectRec*            NewDelayLineSpec(void);
  43.  
  44. /* dispose of a delay line specification */
  45. void                                DisposeDelayLineSpec(DelayEffectRec* DelaySpec);
  46.  
  47. /* set max delay time */
  48. void                                SetDelayMaxTime(DelayEffectRec* DelaySpec, float MaxTime);
  49.  
  50. /* get max delay time */
  51. float                                GetDelayMaxTime(DelayEffectRec* DelaySpec);
  52.  
  53. /* create a new tap record */
  54. DelayTapRec*                NewDelayTap(void);
  55.  
  56. /* dispose delay tap */
  57. void                                DisposeDelayTap(DelayTapRec* Tap);
  58.  
  59. /* set tap attributes */
  60. void                                SetDelayTapSource(DelayTapRec* Tap, DelayChannelType Source);
  61. void                                SetDelayTapSourceTime(DelayTapRec* Tap, float Time);
  62. void                                SetDelayTapSourceTimeAccent1(DelayTapRec* Tap, float Accent1);
  63. void                                SetDelayTapSourceTimeAccent2(DelayTapRec* Tap, float Accent2);
  64. void                                SetDelayTapSourceTimeAccent3(DelayTapRec* Tap, float Accent3);
  65. void                                SetDelayTapSourceTimeAccent4(DelayTapRec* Tap, float Accent4);
  66. void                                SetDelayTapTarget(DelayTapRec* Tap, DelayChannelType Target);
  67. void                                SetDelayTapTargetTime(DelayTapRec* Tap, float Time);
  68. void                                SetDelayTapTargetTimeAccent1(DelayTapRec* Tap, float Accent1);
  69. void                                SetDelayTapTargetTimeAccent2(DelayTapRec* Tap, float Accent2);
  70. void                                SetDelayTapTargetTimeAccent3(DelayTapRec* Tap, float Accent3);
  71. void                                SetDelayTapTargetTimeAccent4(DelayTapRec* Tap, float Accent4);
  72. void                                SetDelayTapScale(DelayTapRec* Tap, float Scale);
  73. void                                SetDelayTapScaleAccent1(DelayTapRec* Tap, float Accent1);
  74. void                                SetDelayTapScaleAccent2(DelayTapRec* Tap, float Accent2);
  75. void                                SetDelayTapScaleAccent3(DelayTapRec* Tap, float Accent3);
  76. void                                SetDelayTapScaleAccent4(DelayTapRec* Tap, float Accent4);
  77. void                                SetDelayTapFilterType(DelayTapRec* Tap, DelayFilterType Type);
  78.  
  79. /* retrieve tap attributes */
  80. DelayChannelType        GetDelayTapSource(DelayEffectRec* DelaySpec, long Index);
  81. float                                GetDelayTapSourceTime(DelayEffectRec* DelaySpec, long Index);
  82. float                                GetDelayTapSourceTimeAccent1(DelayEffectRec* DelaySpec, long Index);
  83. float                                GetDelayTapSourceTimeAccent2(DelayEffectRec* DelaySpec, long Index);
  84. float                                GetDelayTapSourceTimeAccent3(DelayEffectRec* DelaySpec, long Index);
  85. float                                GetDelayTapSourceTimeAccent4(DelayEffectRec* DelaySpec, long Index);
  86. DelayChannelType        GetDelayTapTarget(DelayEffectRec* DelaySpec, long Index);
  87. float                                GetDelayTapTargetTime(DelayEffectRec* DelaySpec, long Index);
  88. float                                GetDelayTapTargetTimeAccent1(DelayEffectRec* DelaySpec, long Index);
  89. float                                GetDelayTapTargetTimeAccent2(DelayEffectRec* DelaySpec, long Index);
  90. float                                GetDelayTapTargetTimeAccent3(DelayEffectRec* DelaySpec, long Index);
  91. float                                GetDelayTapTargetTimeAccent4(DelayEffectRec* DelaySpec, long Index);
  92. float                                GetDelayTapScale(DelayEffectRec* DelaySpec, long Index);
  93. float                                GetDelayTapScaleAccent1(DelayEffectRec* DelaySpec, long Index);
  94. float                                GetDelayTapScaleAccent2(DelayEffectRec* DelaySpec, long Index);
  95. float                                GetDelayTapScaleAccent3(DelayEffectRec* DelaySpec, long Index);
  96. float                                GetDelayTapScaleAccent4(DelayEffectRec* DelaySpec, long Index);
  97. DelayFilterType            GetDelayTapFilterType(DelayEffectRec* DelaySpec, long Index);
  98. struct EnvelopeRec*    GetDelayTapSourceEnvelope(DelayEffectRec* DelaySpec, long Index);
  99. struct EnvelopeRec*    GetDelayTapTargetEnvelope(DelayEffectRec* DelaySpec, long Index);
  100. struct EnvelopeRec*    GetDelayTapScaleEnvelope(DelayEffectRec* DelaySpec, long Index);
  101. struct LFOListSpecRec*    GetDelayTapSourceLFO(DelayEffectRec* DelaySpec, long Index);
  102. struct LFOListSpecRec*    GetDelayTapTargetLFO(DelayEffectRec* DelaySpec, long Index);
  103. struct LFOListSpecRec*    GetDelayTapScaleLFO(DelayEffectRec* DelaySpec, long Index);
  104.  
  105. /* append tap to list in delay line */
  106. MyBoolean                        AppendTapToDelayEffect(DelayEffectRec* DelaySpec, DelayTapRec* Tap);
  107.  
  108. /* get the number of taps in the delay line */
  109. long                                GetDelayEffectSpecNumTaps(DelayEffectRec* DelaySpec);
  110.  
  111. /* get a specified tap from the delay line */
  112. DelayTapRec*                GetTapFromDelayEffectSpec(DelayEffectRec* DelaySpec, long Index);
  113.  
  114. #endif
  115.